package com.esteel.settlement.pa.packet;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * 请求包：交易网－> 监管系统 交易网发起 平台操作支付 zhouwentong
 */
@XmlRootElement(name = "Result")
@XmlAccessorType(XmlAccessType.FIELD)
public class PlatformOperationPaymentPB1331 extends PaPacket {

	public static int PAYAGENT = 1;// 代理支付
	public static int PAYFORCE = 2;// 强制支付

	private static final long serialVersionUID = 4713094924521026724L;
	// 资金汇总账号
	@XmlElement(name = "SupAcctId")
	@Length(max = 32)
	@NotEmpty
	private String supAcctId;
	// 功能标志 1：代理复核 2：强制支付
	@XmlElement(name = "FuncFlag")
	private int funcFlag;
	// 支付指令号
	@XmlElement(name = "PaySerialNo")
	@Length(max = 20)
	@NotEmpty
	private String paySerialNo;
	// 支付订单号
	@XmlElement(name = "ThirdHtId")
	@Length(max = 30)
	@NotEmpty
	private String thirdHtId;
	// 支付金额
	@XmlElement(name = "PayAmount")
	private double payAmount;
	// 支付手续费
	@XmlElement(name = "PayFee")
	private double payFee;
	// 备注
	@XmlElement(name = "Note")
	private String note;

	public String getSupAcctId() {
		return supAcctId;
	}

	public int getFuncFlag() {
		return funcFlag;
	}

	public String getPaySerialNo() {
		return paySerialNo;
	}

	public String getThirdHtId() {
		return thirdHtId;
	}

	public double getPayAmount() {
		return payAmount;
	}

	public double getPayFee() {
		return payFee;
	}

	public String getNote() {
		return note;
	}

	public void setSupAcctId(String supAcctId) {
		this.supAcctId = supAcctId;
	}

	public void setFuncFlag(int funcFlag) {
		this.funcFlag = funcFlag;
	}

	public void setPaySerialNo(String paySerialNo) {
		this.paySerialNo = paySerialNo;
	}

	public void setThirdHtId(String thirdHtId) {
		this.thirdHtId = thirdHtId;
	}

	public void setPayAmount(double payAmount) {
		this.payAmount = payAmount;
	}

	public void setPayFee(double payFee) {
		this.payFee = payFee;
	}

	public void setNote(String note) {
		this.note = note;
	}

	@Override
	protected String[] order() {
		String[] args = { "supAcctId", "funcFlag", "paySerialNo", "thirdHtId", "payAmount", "payFee", "note", "reserve" };
		return args;
	}

	@Override
	protected String tranFunc() {
		return "1331";
	}
}
